1. Field of the Invention
The present invention relates to data transfer across domains, and more particularly, to data transfer across a number of different protection domains using page remapping.
2. Description of the Related Art
Operating systems that utilize different protection domains require a data transfer scheme to transfer data from one domain (sender or source) to another domain (receiver or sink). The operating system is responsible for not only the transfer of the data from one domain to another but also insuring that the protection or security information is updated so that processes running in a certain domain will not interfere with processes running in other domains.
Through use of multiprogramming, modern computer systems are able to execute several processes at essentially the same time. With multiprogramming, the computer (e.g., CPU) and the memory are time shared amongst the several users (i.e., processes), thereby giving the illusion that all users have their own machine. Computers which use multiprogramming usually also provide for a sharing of code and data between processes. Such sharing allows communication between the processes and can reduce the number of copies of identical information being stored.
Despite the ability to share code and data between processes, often times data must be transferred from one domain to another domain. Simply copying the data from the sender domain to the receiver domain is unacceptable because it is so inefficient and burdensome to the computer and the memory that they become a bottleneck. As networks become faster, this bottleneck worsens because when data is copied, every word passes through the computer and the memory.
Prior attempts to minimize data transfer overhead associated with the transfer of data between different protection domains in an operating system have typically used virtual memory remapping techniques. Virtual memory remapping techniques give the appearance of data transfer by remapping data pages from the sender domain to the receiver domain. See, e.g., S.-Y. Tzou and D. P. Anderson, "The Performance of Message-passing using Restricted Virtual Memory Remapping," Software-Practice and Experience, Vol. 21, March 1991. Here, instead of copying the data across domains, virtual memory remapping techniques are used to update page table entries in a memory-management unit (MMU).
However, in reality, simulating the data transfer by conventional virtual memory remapping techniques requires a lot more work than simply updating page table entries within the MMU. Typically, the operating system has to manage buffers at the source and destination, update virtual mappings at several levels, and perform translation-lookaside buffer (TLB) consistency actions. As a result, the total work involved with remapping can be expensive.
Recently, proposals have been made which attempt to cut down the number of page remapping operations required for data transfer across different domains. See, e.g., Peter Druschel and Larry L. Peterson, "Fbufs: A High-Bandwidth Cross-Domain Transfer Function," Proceedings of the Fourteenth ACM Symposium on Operating Systems Principals, December 1993. However, these recent proposals are unsatisfactory because they require deviation from existing UNIX networking I/O interface, require special hardware support and/or compromise data protection or security.
Thus, there is a need for a cross-domain data transfer technique which does not require extensive page remapping operations, yet maintains data protection and security and works with existing network interfaces without the need for special hardware support.